﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using IQReportes.Utils;

namespace IQReportes.Models
{
    //Usado para el segundo cuadrante sobre tipos
    public class ConsolidadoTipoTransaccion : ConsolidadoGeneral
    {
        [Key]
        public int idConsolidado { get; set; }
        public DateTime dtFecha { get; set; }
        public string vcSemana { get; set; }
        public string vcMes { get; set; }
        public int? inAno { get; set; }
        public int idTipo { get; set; } //este vendría a ser el código de la txn

        public int inCantEstado1 { get; set; }
        public int inCantEstado2 { get; set; }
        public int inCantEstado3 { get; set; }
        public int inCantEstado4 { get; set; }

        //public string vcCodCategoria { get; set; }
        //public string vcNombreCategoria { get; set; }
        public string vcNombreTipoTransaccion { get; set; }
        public int inCantidad { get; set; }
        public int inPeriodo { get; set; } //varia del 1 al 7 segun si es de ayer, semanal, mensual, etc...

        public static string[] obtenerCabecera(int numeroFila, int tipoChart, int? idEstado)
        {
            List<String> cabecera = new List<String>();
            if (numeroFila == 1)
            {
                //cabecera.Add("Fecha");
                cabecera.Add("Tipo de Transacción");
                cabecera.Add("# de Transacciones");
                if (tipoChart == Constantes.TABLECHART) {
                    if (idEstado == null)
                    {
                        cabecera.Add("Exitosas");
                        cabecera.Add("Aprobadas");
                        cabecera.Add("Por Imprimir");
                        cabecera.Add("Truncas");
                    }
                }
            }
            else //cuando numeroFila es 2
            {
                //cabecera.Add("string");
                cabecera.Add("string");
                cabecera.Add("number");
                if (tipoChart == Constantes.TABLECHART)
                {
                    if (idEstado == null)
                    {
                        cabecera.Add("number");
                        cabecera.Add("number");
                        cabecera.Add("number");
                        cabecera.Add("number");
                    }
                }
            }
            return cabecera.ToArray();
        }

        public string[] obtenerArreglo(int tipoChart,int? idEstado)
        {
            List<String> listaCadenas = new List<String>();
            
            listaCadenas.Add(vcNombreTipoTransaccion);
            listaCadenas.Add(inCantidad.ToString());

            if (tipoChart == Constantes.TABLECHART)
            {
                //si es que no hubo filtro por estado entonces se muestran los estados
                if (idEstado == null)
                {
                    listaCadenas.Add(inCantEstado1.ToString());
                    listaCadenas.Add(inCantEstado2.ToString());
                    listaCadenas.Add(inCantEstado3.ToString());
                    listaCadenas.Add(inCantEstado4.ToString());
                }
            }
            //listaCadenas.Add()

            return listaCadenas.ToArray();
        }

    }
}